import { BelongsToMany, Column, Model, Table } from 'sequelize-typescript';
import { Role } from 'src/role/role.model';

@Table({
  // 模型名
  modelName: 'Permission',
  // 表名
  tableName: 'permissions',
  // 开启软删除
  paranoid: true,
  // 指定软删除字段
  deletedAt: 'deleted_at',
  // 命名策略：表字段使用 snake_case，模型属性使用 camelCase
  underscored: true,
  // 自定义 createdAt 和 updatedAt 字段的格式
  timestamps: true,
  createdAt: 'created_at', // 将 created_at 字段重命名为 custom_created_at
  updatedAt: 'updated_at', // 将 updated_at 字段重命名为 custom_updated_at
})
export class Permission extends Model {
  @Column
  code: string;

  @Column
  description: string;

  @BelongsToMany(() => Role, 'role_permissions', 'permission_id', 'role_id')
  roles: Role[];
}
